import request from '@/utils/request'

/**
 * 学生用户登录
 * @param {Object} data - 登录信息
 * @param {String} data.userName - 用户名/学号
 * @param {String} data.password - 密码
 * @returns {Promise<String>} 返回JWT令牌
 */
export function login(data) {
  return request({
    url: '/api/studentUser/login',
    method: 'post',
    data
  })
}

/**
 * 获取当前登录用户信息
 * @returns {Promise<Object>} 用户信息
 */
export function getProfile() {
  return request({
    url: '/api/studentUser/profile',
    method: 'get'
  })
}

/**
 * 更新当前用户信息
 * @param {Object} data - 用户信息
 * @param {String} data.name - 姓名
 * @param {Number} data.sex - 性别 (0:男 1:女)
 * @param {String} data.birthday - 生日 (yyyy-MM-dd)
 * @param {String} data.avatar - 头像路径
 * @param {String} data.address - 地址
 */
export function updateProfile(data) {
  return request({
    url: '/api/studentUser/update',
    method: 'put',
    data
  })
}

/**
 * 根据ID获取用户详情
 * @param {Number} id - 用户ID
 * @returns {Promise<Object>} 用户详情
 */
export function getUserById(id) {
  return request({
    url: `/api/studentUser/detail/${id}`,
    method: 'get'
  })
}

/**
 * 根据学号获取用户信息
 * @param {String} sno - 学号
 * @returns {Promise<Object>} 用户信息
 */
export function getUserBySno(sno) {
  return request({
    url: `/api/studentUser/getByStudentNo/${sno}`,
    method: 'get'
  })
}

/**
 * 修改密码
 * @param {Object} data - 密码信息
 * @param {String} data.oldPassword - 原密码
 * @param {String} data.newPassword - 新密码
 * @param {String} data.confirmPassword - 确认新密码
 */
export function changePassword(data) {
  return request({
    url: '/api/studentUser/changePassword',
    method: 'put',
    data
  })
}
